<?php

namespace CNAM\ActimanBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use CNAM\ActimanBundle\Entity\Operation;
use CNAM\ActimanBundle\Entity\User;
use CNAM\ActimanBundle\Entity\phasePlanifiee;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * Tache
 *
 * @ORM\Table()
 * @ORM\Entity
 */
class Tache
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;
    
    /**
     *
     * @ORM\ManyToOne(targetEntity="User")
     */
    protected $User;
    
    /**
     * @var string
     *
     * @ORM\Column(name="nomTache", type="string", length=255,nullable=true)
     */
    private $nomTache;
    
    /**
     * @var \DateTime
     *
     * @ORM\Column(name="dateDebutTheo", type="date",nullable=true)
     */
    private $dateDebutTheo;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="dateFinTheo", type="date",nullable=true)
     */
    private $dateFinTheo;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="dateDebutReel", type="date",nullable=true)
     */
    private $dateDebutReel;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="dateFinReel", type="date",nullable=true)
     */
    private $dateFinReel;

    /**
     * @var integer
     * @Assert\Range(
     *      min = 0,
     *      max = 100,
     *      minMessage = "L'avancement doit être compris entre 0 et 100",
     *      maxMessage = "L'avancement doit être compris entre 0 et 100"
     * )
     * @ORM\Column(name="avancementTache", type="integer",nullable=true)
     */
    private $avancementTache;

    /**
     * @var string
     *
     * @ORM\Column(name="commentaires", type="string", length=255,nullable=true)
     */
    private $commentaires;

    /**
     * @var string
     *
     * @ORM\Column(name="resultatTache", type="string", length=255,nullable=true)
     */
    private $resultatTache;

    /**
     * 
     * @ORM\ManyToOne(targetEntity="phasePlanifiee")
     * 
     */
    protected $phasePlanifiee;
    
    /**
     *
     * @ORM\ManyToOne(targetEntity="Operation")
     */
    protected $Operation;
     
    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set nomTache
     *
     * @param string $nomTache
     * @return Tache
     */
    public function setNomTache($nomTache)
    {
        $this->nomTache = $nomTache;
    }

    /**
     * Get nomTache
     *
     * @return string 
     */
    public function getNomTache()
    {
        return $this->nomTache;
    }

    /**
     * Set dateDebutTheo
     *
     * @param \DateTime $dateDebutTheo
     * @return Tache
     */
    public function setDateDebutTheo($dateDebutTheo)
    {
        $this->dateDebutTheo = $dateDebutTheo;
    }

    /**
     * Get dateDebutTheo
     *
     * @return \DateTime 
     */
    public function getDateDebutTheo()
    {
        return $this->dateDebutTheo;
    }

    /**
     * Set dateFinTheo
     *
     * @param \DateTime $dateFinTheo
     * @return Tache
     */
    public function setDateFinTheo($dateFinTheo)
    {
        $this->dateFinTheo = $dateFinTheo;
    }

    /**
     * Get dateFinTheo
     *
     * @return \DateTime 
     */
    public function getDateFinTheo()
    {
        return $this->dateFinTheo;
    }

    /**
     * Set dateDebutReel
     *
     * @param \DateTime $dateDebutReel
     * @return Tache
     */
    public function setDateDebutReel($dateDebutReel)
    {
        $this->dateDebutReel = $dateDebutReel;
    }

    /**
     * Get dateDebutReel
     *
     * @return \DateTime 
     */
    public function getDateDebutReel()
    {
        return $this->dateDebutReel;
    }

    /**
     * Set dateFinReel
     *
     * @param \DateTime $dateFinReel
     * @return Tache
     */
    public function setDateFinReel($dateFinReel)
    {
        $this->dateFinReel = $dateFinReel;
    }

    /**
     * Get dateFinReel
     *
     * @return \DateTime 
     */
    public function getDateFinReel()
    {
        return $this->dateFinReel;
    }

    /**
     * Set avancementTache
     *
     * @param string $avancementTache
     * @return Tache
     */
    public function setAvancementTache($avancementTache)
    {
        $this->avancementTache = $avancementTache;
    }

    /**
     * Get avancementTache
     *
     * @return string 
     */
    public function getAvancementTache()
    {
        return $this->avancementTache;
    }

    /**
     * Set commentaires
     *
     * @param string $commentaires
     * @return Tache
     */
    public function setCommentaires($commentaires)
    {
        $this->commentaires = $commentaires;
    }

    /**
     * Get commentaires
     *
     * @return string 
     */
    public function getCommentaires()
    {
        return $this->commentaires;
    }

    /**
     * Set resultatTache
     *
     * @param string $resultatTache
     * @return Tache
     */
    public function setResultatTache($resultatTache)
    {
        $this->resultatTache = $resultatTache;
    }

    /**
     * Get resultatTache
     *
     * @return string 
     */
    public function getResultatTache()
    {
        return $this->resultatTache;
    }
    
    /**
     *
     * @return Operation
     */
    public function getOperation() {
        return $this->Operation;
    }

    /**
     *
     * @param Operation $Operation
     */
    public function setOperation($Operation) {
        $this->Operation = $Operation;
    }
    
    /**
     *
     * @return User
     */
    public function getUser() {
        return $this->User;
    }

    /**
     *
     * @param User $User
     */
    public function setUser($User) {
        $this->User = $User;
    }
    
    /**
     *
     * @return phasePlanifiee
     */
    public function getphasePlanifiee() {
        return $this->phasePlanifiee;
    }

    /**
     *
     * @param phasePlanifiee $phasePlanifiee
     */
    public function setphasePlanifiee($phasePlanifiee) {
        $this->phasePlanifiee = $phasePlanifiee;
    }
    
}
